#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
主题: 数字的格式化输出
问题: 你需要将数字格式化后输出，并控制数字的位数、对齐、千位分隔符和其他的细节。
提示 : 
"""

def recipe1():
    x = 1234.56789
    print(f"{x = }")
    print(f"{format(x, '0.2f') = }")
    print(f"{format(-x, '0.2f') = }")
    print(f"{format(x, '>10.2f') = }")
    print(f"{format(x, '<10.2f') = }")
    print(f"{format(x, '^10.2f') = }")
    print(f"{format(x, ',') = }")
    print(f"{format(x, '0,.1f') = }")

    # 指数记法
    print(f"{format(x, 'e') = }")
    print(f"{format(x, '0.2E') = }")

    # 同时指定宽度和精度
    print(f"{'The value is {:0,.2f}'.format(x) = }")

    # 使用字符串的 translate() 方法来交换千位符
    swap_separators = {ord('.'):',', ord(','):'.'}
    print(f"{format(x, ',').translate(swap_separators) = }")

    # 使用%来格式化数字(老代码)
    print(f"{'%0.2f' % x = }")
    print(f"{'%10.1f' % x = }")
    print(f"{'%-10.1f' % x = }")

def main():
    print('recipe1'.center(20, '*'))
    recipe1() 


if __name__ == '__main__':
    main()     